package com.ushine.web.base.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ushine.web.base.model.system.RoleDO;
import com.ushine.web.component.page.PageRequestQuery;

import java.util.List;

/**
 * @Author: yls
 * @Date: 2021/3/15 9:19
 * @Description: 角色管理 -- service
 * @Version 1.0
 */
public interface IRoleService extends IService<RoleDO> {

    /**
     * 功能描述
     * (查询所有的角色)
     *
     * @return : java.util.List<com.ushine.interfaces.model.system.RoleDO>
     * @author : yls
     * @date : 2021/3/15 9:33
     */
    List<RoleDO> listAllRoles();


    /**
     * 功能描述
     * (根据角色的id查询对应的角色)
     *
     * @param roleId 角色的ID
     * @return : java.util.List<com.ushine.interfaces.model.system.RoleDO>
     * @author : yls
     * @date : 2021/3/15 9:34
     */
    RoleDO getRoleById(String roleId);

    /**
     * 功能描述
     * (根据角色ID查询角色)
     *
     * @param roleName 角色名称
     * @return : com.ushine.interfaces.model.system.RoleDO
     * @author : yls
     * @date : 2021/3/24 10:15
     */
    RoleDO getRoleByName(String roleName);

    /**
     * 功能描述
     * (添加角色)
     *
     * @param roleDO 角色对象
     * @return : void
     * @author : yls
     * @date : 2021/3/15 9:39
     */
    Boolean insertRole(RoleDO roleDO);

    /**
     * 功能描述
     * (批量删除角色)
     *
     * @param roleIds 待删除角色的id集合
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2021/3/15 10:28
     */
    Boolean deleteRoles(List<String> roleIds);

    /**
     * 功能描述:
     * 〈分页查询角色〉
     *
     * @param pageRequestQuery 分页查询对象
     * @return : com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.ushine.web.base.model.system.RoleDO>
     * @author : yls
     * @date : 2022/3/11 15:58
     */
    Page<RoleDO> listRolesByPage(PageRequestQuery<RoleDO> pageRequestQuery);


}
